﻿--1. 为赵云此人进行开户开卡操作，赵云身份证：420107199904054233
		insert into AccountInfo values('420107199904054233','13454788478','赵云',GETDATE());

--2. 需要求出张飞的银行卡卡号和余额，张飞身份证：420107199602034138  （1.使用连接查询，2.使用变量）
		declare @cd varchar(50)
		select @cd=AccountCode from AccountInfo where RealName='张飞'
		print @cd
		select b.CardNo,b.CardMoney from AccountInfo a
		inner join BankCard b on a.AccountId=b.AccountId
		where AccountCode=@cd
		;
		declare @cd1 varchar(50),@ye decimal(13,2)
		select @cd1=cardno,@ye=CardMoney from AccountInfo a
		inner join BankCard b on a.AccountId=b.AccountId
		where a.AccountCode='420107199602034138'
		print concat('卡号',@cd1,'  ','余额',@ye)
--​3.某用户银行卡号为“6225547854125656”，该用户执行取钱操作，取钱5000元，
--余额充足则进行取钱操作，并提示"取钱成功"，否则提示“余额不足”。
--条件分支if-else
		 declare @money decimal(13,2)
		 select @money=CardMoney from BankCard where CardNo='6225547854125656'
		 if (@money>5000)
		 begin 
			update BankCard set CardMoney=@money-5000 where CardNo='6225547854125656'
			set @money-=5000
			print '取钱成功'
		 end
		 else 
		 begin
		   print '余额不足'
		 end
		 print concat('余额:',@money)
--4.查询银行卡信息，将银行卡状态1,2,3,4分别转换为汉字“正常,挂失,冻结,注销”，
--并且根据银行卡余额显示银行卡等级 30万以下为“普通用户”,30万及以上为"VIP用户"，  
--条件分支:case-when
		select *, case CardState
		when 1 then '正常'
		when 2 then '挂失'
		when 3 then '冻结'
		when 4 then '注销'
		end 银行卡状态,
		case 
		when cardmoney>300000 then 'VIP用户'
		else '普通用户'
		end 银行卡等级
		from BankCard
--5.循环打印1-10。
		declare @a int
		set @a=0
		while(@a<10)
		begin set @a+=1
		print @a
		end
--6.打印99乘法表* 
		declare @b int=1 , @d varchar ='*'
		while @b<10
		begin
			declare @c int=1,@result varchar(255)=''
			while @c<=@b
			begin
				set @result+=concat(@c,@d,@b,' ')
				set @c+=1
			end
			print @result
			set @b+=1
		end